﻿using System;
using System.Text;

namespace PM.Entities
{

    /*****************************************************************
     * Розширюємо клас користувача User. Для зручності
     * користування сформуємо деякі властивості з існуючих даних
     * ***************************************************************/
    public partial class User
    {
        //Повертає Прізвище та ініціали
        public string ShortName
        {
            get
            {
                StringBuilder sb = new StringBuilder();
                string[] names = this.FullName.Split(' ');
                sb.Append(String.Format("{0} {1}", names[0],' '));
                for (int i = 1; i < names.Length; i++)
                {
                    sb.Append(names[i][0]);
                    sb.Append(". ");
                }
                return sb.ToString();
            }
        }
    }


    #region AuthentificatedUserInfo
    /*******************************************************
     * Клас, який використовується при реалізації
     * безпеки. Містить дані, що зберігаються браузером
     * під час роботи з додатком
     * *****************************************************/
    public class AuthentificatedUserInfo
    {
        public AuthentificatedUserInfo()
        {
        }

        public AuthentificatedUserInfo(User user)
        {
            ID = user.UserID;
            Login = user.Login;
        }

        public int ID { set; get; }
        public string Login { set; get; }

    }

    #endregion

    //public enum Days
    //{
    //    Понеділок, Вівторок, Середа, Четвер, Пятниця, Субота, Неділя
    //}

    //public enum Course
    //{
    //    Перший, Другий, Третій, Четвертий, Пятий, Шостий
    //}

    /******************************************
     * Додаємо властивість, яка буде повертати
     * скорочену назву спеціальності
     * ****************************************/
    public partial class Speciality
    {
        public string ShortName
        {
            get
            {
                StringBuilder sb = new StringBuilder();
                string[] names = this.Name.Split(' ');
                sb.Append(names[0][0]);
                for (int i = 1; i < names.Length; i++)
                {
                    sb.Append(names[i][0]);
                }
                return sb.ToString().ToUpper();
            }
        }
    }

    /***************************************************
     * Властвість повертає "модифікований" номер пари
     * *************************************************/
    public partial class LessonNumber
    {
        public string LessonName
        {
            get
            {
                return String.Format("{0} {1}", this.LessonNumber1.ToString(), "пара");
            }
        }
    }

    public partial class Role
    {
        /*****************************************************
         * Розширюємо таблицю Ролей. Додамо для 
         * зручності нову властивість, яка буде повертати
         * аналоги ролей на укр. мові
         * ***************************************************/
        public string RoleUA
        {
            get
            {
                switch (this.Name)
                {
                    case "Chair":
                        {
                            return "Зав. кафедри";
                        }
                    case "Lecturer":
                        {
                            return "Викладач";
                        }
                    case "Deanery":
                        {
                            return "Деканат";
                        }
                    default:
                        return "Викладач";
                }
            }
        }
    }
}
